home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 57131 / 57131.xpi / chrome / beefree.jar / content / beefree / w / bf.w.google.js < prev    next >
Encoding:
JavaScript  |  2010-01-25  |  7.1 KB  |  108 lines

  1. /*
  2.     2009 - Copyright by Bee <http://www.honeybeenet.altervista.org>.
  3.     This program is free software; you can redistribute it and/or
  4.     modify it under the terms of the GNU General Public License
  5.     as published by the Free Software Foundation; either version 2
  6.     of the License, or (at your option) any later version.
  7.  
  8.     This program is distributed in the hope that it will be useful,
  9.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11.     GNU General Public License for more details.
  12.  
  13.     You should have received a copy of the GNU General Public License
  14.     along with this program; if not, write to the Free Software
  15.     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  16. */
  17.  
  18. function beefree_w_google_domain(selfIndex, stack)
  19. {
  20.     //case insensitive (i), global (g), multiline (m) (gmi)
  21.     var address = stack["address"];
  22.     var regexp = /(\/\/|\.)google\.(museum|aero|arpa|coop|info|name|biz|com|edu|gov|int|mil|net|org|pro|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)\//gmi;
  23.     return beefree_regexp_test(address, regexp);
  24. }
  25.  
  26. function beefree_w_google_host(selfIndex, stack)
  27. {
  28.     var hostname = stack["hostname"];
  29.     var regexp = /google\.(museum|aero|arpa|coop|info|name|biz|com|edu|gov|int|mil|net|org|pro|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)/gmi;
  30.     var regexp1 = /(googlesyndication|gstatic|ytimg|google-analytics|ggpht)\.com/gmi;
  31.     return beefree_regexp_test(hostname, regexp) || 
  32.            beefree_regexp_test(hostname, regexp1);
  33. }
  34.  
  35. function beefree_w_google_replace(selfIndex, stack)
  36. {
  37.     var address = stack["address"];
  38.     var current_page = stack["current_page"];
  39.     //http://www.google.com/url?blah=blah blah
  40.     var URL1=/(\/\/|\.)google\.(museum|aero|arpa|coop|info|name|biz|com|edu|gov|int|mil|net|org|pro|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)\/(|news\/)url\?/gmi;
  41.     var URL2=/^(\/(|news\/)url\?)/gmi;// /url? at the beginning of a string only (^)
  42.     var URL3=/(\/\/|\.)google\.(museum|aero|arpa|coop|info|name|biz|com|edu|gov|int|mil|net|org|pro|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)\/aclk\?/gmi;
  43.     //If needed, add the missing domains!
  44.     var is_ok = (beefree_is_hyperlink(address) && !beefree_is_anchor_magic(address, current_page)) && 
  45.                 (beefree_substr_test(address, "q=")  || beefree_substr_test(address, "url=")) &&
  46.                 (beefree_regexp_test(address, URL1) || beefree_regexp_test(address, URL2) || beefree_regexp_test(address, URL3));
  47.     if (is_ok)
  48.     {
  49.         var done = false;
  50.         var address_new = "";
  51.         address_new = beefree_query_get_and_translate_address(address, "q", false);
  52.         if(!done && address_new != address)
  53.         {
  54.             done = true;
  55.             address = address_new;
  56.         }
  57.         address_new = beefree_query_get_and_translate_address(address, "url", true);
  58.         if(!done && address_new != address)
  59.         {
  60.             done = true;
  61.             address = address_new;
  62.         }
  63.     }
  64.     return address;
  65. }
  66.  
  67. function beefree_w_google_accept(selfIndex, stack)
  68. {
  69.     var address = stack["address"];
  70.     var current_page = stack["current_page"];
  71.     return beefree_is_hyperlink(address) && 
  72.             !beefree_is_protocol(address, "javascript:") &&
  73.             !beefree_is_anchor_magic(address, current_page) &&
  74.             !beefree_is_anchor(address);
  75. }
  76.  
  77. function beefree_w_google_confirm(selfIndex, stack)
  78. {
  79.     var address = stack["address"];
  80.     var address_original = stack["address_original"];
  81.     var current_page = stack["current_page"];
  82.     return !((beefree_website_get(selfIndex)["test.domain"])(selfIndex, stack)) || address != address_original ||
  83.             beefree_host_from_address(address) != beefree_host_from_address(current_page);
  84. }
  85.  
  86. (function(){
  87.     var data = new Array();
  88.     data["enabled"] = true;
  89.     data["system"] = true;
  90.     data["version"] = 1;
  91.     data["name"] = "Google";
  92.     data["test.host"] = beefree_w_google_host;
  93.     data["test.domain"] = beefree_w_google_domain;
  94.     data["referer.remove"] = true;
  95.     data["useragent.remove"] = true;
  96.     data["links.remove"] = true;
  97.     data["links.recursion"] = true;
  98.     data["links.metaengine"] = false;
  99.     data["links.onload"] = true;
  100.     data["links.ignoredomain"] = false;
  101.     data["links.function.accept"] = beefree_w_google_accept;
  102.     data["links.function.replace"] = beefree_w_google_replace;
  103.     data["links.function.confirm"] = beefree_w_google_confirm;
  104.     beefree_h_script_add(data);
  105. })();
  106.  
  107.  
  108.